//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#ifndef _CombinedPatternsCathFASTAProfile_h__
#define _CombinedPatternsCathFASTAProfile_h__
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#include "Pratt2PatternsByCATH.h"
#include "libraries.h"
#include "PatternsCathFASTAProfile.h"
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
class CombinedPatternsCathFASTAProfile : public PatternsCathFASTAProfile { 

  private:


  protected:

    TListE <Pratt2PatternsByCATH>*             listPrattPatterns;
    TListE <String>*                           listFilenamePatternsCompact;
    TListE <String>*                           listTypeOfData;

  public:

    CombinedPatternsCathFASTAProfile ();
    CombinedPatternsCathFASTAProfile (const CombinedPatternsCathFASTAProfile&);
    CombinedPatternsCathFASTAProfile (const CombinedPatternsCathFASTAProfile*);

    ~CombinedPatternsCathFASTAProfile ();

    void                                       ListPrattPatterns (TListE <Pratt2PatternsByCATH>* listPrattPatterns);
    void                                       ListFilenamePatternsCompact (TListE <String>* listFilenamePatternsCompact);
    void                                       ListTypeOfData (TListE <String>* listTypeOfData);

    TListE <Pratt2PatternsByCATH>*             ListPrattPatterns (void);
    TListE <String>*                           ListFilenamePatternsCompact (void);
    TListE <String>*                           ListTypeOfData (void);

    bool                                       LoadData (void);
    bool                                       CreateCombinedARFF (String* nameRelation, String* comments, int positionInPatternFile, float percentagePattern, float percentageFalse);
    bool                                       CreateCompleteARFF (String* nameRelation, String* comments, float percentagePattern, float percentageFalse, int positionInList);
    bool                                       CreateCompleteCombinedARFF (String* nameRelation, String* comments, float percentagePattern, float percentageFalse);

    CombinedPatternsCathFASTAProfile           operator= (const CombinedPatternsCathFASTAProfile& combinedPatternsCathFASTAProfile);

};
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
#endif
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
//---------------------------------------------------------------------------------------------------------------------------------------------------------//
